/**
 * API使用示例
 * 展示如何在项目中使用API工具类
 */

import api from './api-alova.js'

/**
 * 用户登录示例
 */
export const loginExample = async (username, password) => {
  try {
    const data = {
      username,
      password
    }
    
    const result = await api.user.login(data)
    console.log('登录成功:', result)
    
    // 保存token到本地存储
    if (result.token) {
      uni.setStorageSync('token', result.token)
    }
    
    // 保存用户信息
    if (result.userInfo) {
      uni.setStorageSync('userInfo', JSON.stringify(result.userInfo))
    }
    
    uni.showToast({
      title: '登录成功',
      icon: 'success'
    })
    
    return result
  } catch (error) {
    console.error('登录失败:', error)
    uni.showToast({
      title: error.message || '登录失败',
      icon: 'none'
    })
    throw error
  }
}

/**
 * 获取作品列表示例
 */
export const getArtworkListExample = async (page = 1, size = 10) => {
  try {
    const params = {
      page,
      size
    }
    
    const result = await api.artwork.getArtworkList(params)
    console.log('获取作品列表成功:', result)
    
    return result
  } catch (error) {
    console.error('获取作品列表失败:', error)
    uni.showToast({
      title: error.message || '获取作品列表失败',
      icon: 'none'
    })
    throw error
  }
}

/**
 * 发表评论示例
 */
export const addCommentExample = async (artworkId, content) => {
  try {
    const data = {
      artworkId,
      content
    }
    
    const result = await api.comment.addComment(data)
    console.log('发表评论成功:', result)
    
    uni.showToast({
      title: '评论发表成功',
      icon: 'success'
    })
    
    return result
  } catch (error) {
    console.error('发表评论失败:', error)
    uni.showToast({
      title: error.message || '评论发表失败',
      icon: 'none'
    })
    throw error
  }
}

/**
 * 搜索作品示例
 */
export const searchArtworkExample = async (keyword, page = 1, size = 10) => {
  try {
    const params = {
      keyword,
      page,
      size
    }
    
    const result = await api.search.searchArtwork(params)
    console.log('搜索作品成功:', result)
    
    return result
  } catch (error) {
    console.error('搜索作品失败:', error)
    uni.showToast({
      title: error.message || '搜索作品失败',
      icon: 'none'
    })
    throw error
  }
}

// 导出所有示例
export default {
  loginExample,
  getArtworkListExample,
  addCommentExample,
  searchArtworkExample
}